package ccnu.agile.annotations;

import ccnu.agile.enums.CResource;

import java.lang.annotation.*;

/**
 * 接口层面RBAC校验
 *
 * @author JreamY
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CApi {

    /**
     * 接口业务资源
     */
    CResource resource();

    /**
     * 是否需要跳过rbac校验
     *
     * @return
     */
    boolean skipRBAC() default false;

    /**
     * 是否需要跳过token校验
     *
     * @return
     */
    boolean skipTokenCheck() default false;

    /**
     * 特殊接口：如文件上传、不做任何校验，也不做任何业务处理，直接交由Spring管理
     *
     * @return
     */
    boolean special() default false;

    /**
     * 特殊接口必传，打印interface request日志
     * @return
     */
    String specialRequestLog() default "";
}
